<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// * await右侧的表达式一般为promise对象, 但也可以是其它的值
	// * 如果表达式是promise对象, await返回的是promise成功的值
	// * 如果表达式是其它值, 直接将此值作为await的返回值
	{
		function run(){
			return 100;
		}
		async function fn(){
			// const result = await 1;
			// console.log(result);//1
			
			// const result = await run();
			// console.log(result);// 100
			
			// const result = await Promise.resolve(200);
			// console.log(result);// 200
			
			try{
				const result = await Promise.reject(1);
				console.log(result);
			}catch (err){
				console.log(err);// 1
			}
		
		}
		
		console.log(fn());
	}
	
	
	
	// * 如果await的promise失败了, 就会抛出异常, 需要通过try...catch捕获处理
	
	// * await必须写在`async`函数中, 但`async`函数中可以没有await
	// {
	// 	async function fn(){
	// 		await 1;
	// 	}
	// }
</script>
</html>